package org.erpworld.hr.dto;

import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.model.SelectItem;
import org.erpworld.hr.dao.Hrpersonel;
import org.erpworld.hr.dao.HrpersonelDAO;
import org.erpworld.r.dao.Rcinsiyet;
import org.erpworld.r.dao.RcinsiyetDAO;
import org.erpworld.r.dao.Rehliyettur;
import org.erpworld.r.dao.RilceDAO;
import org.erpworld.r.dao.Rmhal;
import org.erpworld.r.dao.Ruyruk;
import org.erpworld.util.JsfUtil;
import org.primefaces.event.SelectEvent;

/**
 *
 * @author volkan
 */
@ManagedBean
@RequestScoped
public class HrpersonelDTO {

    private Integer personelId;
    private Ruyruk ruyruk;
    private Rcinsiyet rcinsiyet;
    private Rmhal rmhal;
    private Rehliyettur rehliyettur;
    private String personelNo;
    private String ad;
    private String soyad;
    private Integer kimlikNo;
    private Integer sgkNo;
    private Date dtarih;
    private Date ehliyetTarih;
    private Integer ehliyetNo;
    private String aciklama;
    private HrpersonelDAO hrp;
    private RcinsiyetDAO cDao;
    private List<Hrpersonel> personelList;
    private SelectItem[] cinsiyetSelect;
    private String[] cinsiyetStrs;
    private Hrpersonel selectedHrpersonel;
    //Constructors-----------------------------------------------------------------------------------------------

    public HrpersonelDTO() {
        hrp = new HrpersonelDAO();
        this.personelList = hrp.list();
        cDao = new RcinsiyetDAO();
        cinsiyetStrs = new String[cDao.list().size()];
        for (int i = 0; i < cinsiyetStrs.length; i++) {
            cinsiyetStrs[i] = cDao.list().get(i).getAd();
        }
        this.cinsiyetSelect = filterOptions(cinsiyetStrs);
    }

    public HrpersonelDTO(Integer personelId, Ruyruk ruyruk, Rcinsiyet rcinsiyet,
                         Rmhal rmhal, Rehliyettur rehliyettur) {
        this.personelId = personelId;
        this.ruyruk = ruyruk;
        this.rcinsiyet = rcinsiyet;
        this.rmhal = rmhal;
        this.rehliyettur = rehliyettur;
    }

    public HrpersonelDTO(Integer personelId, Ruyruk ruyruk, Rcinsiyet rcinsiyet,
                         Rmhal rmhal, Rehliyettur rehliyettur, String personelNo,
                         String ad, String soyad, Integer kimlikNo,
                         Integer sgkNo, Date dtarih, Date ehliyetTarih,
                         Integer ehliyetNo, String aciklama) {
        this.personelId = personelId;
        this.ruyruk = ruyruk;
        this.rcinsiyet = rcinsiyet;
        this.rmhal = rmhal;
        this.rehliyettur = rehliyettur;
        this.personelNo = personelNo;
        this.ad = ad;
        this.soyad = soyad;
        this.kimlikNo = kimlikNo;
        this.sgkNo = sgkNo;
        this.dtarih = dtarih;
        this.ehliyetTarih = ehliyetTarih;
        this.ehliyetNo = ehliyetNo;
        this.aciklama = aciklama;
    }

    //Actions --------------------------------------------------------------------------------------------
    //Helpers --------------------------------------------------------------------------------------------
    public String onRowSelect(SelectEvent se){
        selectedHrpersonel=(Hrpersonel)se.getObject(); 
        JsfUtil.putFlashScope("selectedPersonel", selectedHrpersonel);
        return JsfUtil.redirect("personelDetay");
    }
    private SelectItem[] filterOptions(String[] data) {
        SelectItem[] options = new SelectItem[data.length + 1];
        options[0] = new SelectItem("", "Seç");
        for (int i = 0; i < data.length; i++) {
            options[i + 1] = new SelectItem(data[i], data[i]);

        }

        return options;
    }

    //Getter Setter --------------------------------------------------------------------------------------
    public String getAciklama() {
        return aciklama;
    }

    public void setAciklama(String aciklama) {
        this.aciklama = aciklama;
    }

    public String getAd() {
        return ad;
    }

    public void setAd(String ad) {
        this.ad = ad;
    }

    public Date getDtarih() {
        return dtarih;
    }

    public void setDtarih(Date dtarih) {
        this.dtarih = dtarih;
    }

    public Integer getEhliyetNo() {
        return ehliyetNo;
    }

    public void setEhliyetNo(Integer ehliyetNo) {
        this.ehliyetNo = ehliyetNo;
    }

    public Date getEhliyetTarih() {
        return ehliyetTarih;
    }

    public void setEhliyetTarih(Date ehliyetTarih) {
        this.ehliyetTarih = ehliyetTarih;
    }

    public Integer getKimlikNo() {
        return kimlikNo;
    }

    public void setKimlikNo(Integer kimlikNo) {
        this.kimlikNo = kimlikNo;
    }

    public Integer getPersonelId() {
        return personelId;
    }

    public void setPersonelId(Integer personelId) {
        this.personelId = personelId;
    }

    public String getPersonelNo() {
        return personelNo;
    }

    public void setPersonelNo(String personelNo) {
        this.personelNo = personelNo;
    }

    public Rcinsiyet getRcinsiyet() {
        return rcinsiyet;
    }

    public void setRcinsiyet(Rcinsiyet rcinsiyet) {
        this.rcinsiyet = rcinsiyet;
    }

    public Rehliyettur getRehliyettur() {
        return rehliyettur;
    }

    public void setRehliyettur(Rehliyettur rehliyettur) {
        this.rehliyettur = rehliyettur;
    }

    public Rmhal getRmhal() {
        return rmhal;
    }

    public void setRmhal(Rmhal rmhal) {
        this.rmhal = rmhal;
    }

    public Ruyruk getRuyruk() {
        return ruyruk;
    }

    public void setRuyruk(Ruyruk ruyruk) {
        this.ruyruk = ruyruk;
    }

    public Integer getSgkNo() {
        return sgkNo;
    }

    public void setSgkNo(Integer sgkNo) {
        this.sgkNo = sgkNo;
    }

    public String getSoyad() {
        return soyad;
    }

    public void setSoyad(String soyad) {
        this.soyad = soyad;
    }

    public List<Hrpersonel> getPersonelList() {
        return personelList;
    }

    public void setPersonelList(List<Hrpersonel> personelList) {
        this.personelList = personelList;
    }

    public SelectItem[] getCinsiyetSelect() {
        return cinsiyetSelect;
    }

    public void setCinsiyetSelect(SelectItem[] cinsiyetSelect) {
        this.cinsiyetSelect = cinsiyetSelect;
    }

    public Hrpersonel getSelectedHrpersonel() {
        return selectedHrpersonel;
    }

    public void setSelectedHrpersonel(Hrpersonel selectedHrpersonel) {
        this.selectedHrpersonel = selectedHrpersonel;
    }
}
